The Internet and the so-called World Wide Web (the “WWW”) have become ubiquitous. Thousands or even tens of thousands of so-called content providers (publishers) now use the Internet (and, particularly, the WWW) to provide all sorts of content to tens or even hundreds of thousands of clients all over the world.
In order to offload the job of serving some or all of their content, many content providers now subscribe to so-called content delivery networks (CDNs). Using a CDN, some (or all) of a content provider's content can be served to clients (e.g., users who request content) from the CDN (i.e., from one or more servers in the CDN) instead of from the content provider's server(s). In a caching CDN, content that is served may also be cached on some or all of the CDN servers, either before being served or in response to specific requests for that content.
The term content as used herein means any kind of data, in any form, regardless of its representation and regardless of what it represents. Content may include, without limitation, static and/or dynamic images, text, audio content, including streamed audio, video content, including streamed video, web pages, computer programs, documents, files, and the like. Some content may be embedded in other content, e.g., using markup languages such as hypertext markup language (HTML) and extensible markup language (XML). Content includes content which is created or formed or composed specifically in response to a particular request. The term “resource” is sometimes used herein to refer to content.
Because the CDN provides services related to distributing content providers' content, content providers are sometimes referred to herein as customers of the CDN or customers of the CDN provider. The CDN provider typically maintains and operates content servers or server clusters (groups of multiple servers) at multiple locations in and around the CDN. The servers or clusters are often located at numerous different geographic regions (e.g., metropolitan areas) so that content can be stored proximate to users who request the content. The CDN often includes servers at the edge of the network (so-called “edge servers”) and servers within the core of the network (so-called “origin servers”). Origin servers may store or retrieve content and furnish the content to the edge servers, which may in turn cache the content for later distribution.
The edge servers are typically close to users who request the content. In such a configuration, content that is requested that resides on a proximate edge server can be distributed more quickly or efficiently to the requesting user. In an ideal world, all possible content would be stored on proximate edge servers; however, in reality such an arrangement is impractical because of limited resources and costs associated with operation of the content servers. As such, in actual operation, a limited amount of content is selected for storage on the edge servers. Often, only the most popular (e.g., more often requested) content is stored on the edge servers. As content popularity changes, less popular content is replaced with more popular content within the limited storage space of the edge servers.
CDN operators must determine the amount of CDN server capacity and which CDN servers will be used to handle distribution of each customer's content. If too much server capacity is allocated to a customer, the servers may be relatively idle, while allocating too little server capacity to a customer may result in overloading on servers. To complicate matters, distribution of different sized content objects results in different load characteristics. Further, as popularity of a customer's content changes, earlier decisions as to which servers and how much server capacity to handle the customer's content may no longer be appropriate.